App({
    onLaunch() {
        let statusBarHeight = wx.getSystemInfoSync().statusBarHeight
        let info = wx.getMenuButtonBoundingClientRect()
        this.globalData.navInfo = {
            statusHeight: statusBarHeight,
            top: info.top,
            height: info.height,
            left: info.left //胶囊左边的width
        }

        // 版本更新
        if (wx.canIUse('getUpdateManager')) {
            const updateManager = wx.getUpdateManager();
            updateManager.onCheckForUpdate(function(res) {
                // 请求完新版本信息的回调 
                if (res.hasUpdate) {
                    updateManager.onUpdateReady(function() {
                        // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                        updateManager.applyUpdate();
                    })
                    updateManager.onUpdateFailed(function() {
                        // 下载失败 
                        wx.showModal({
                            title: '提示',
                            content: '检查到有新版本但下载失败，请删除当前小程序重新搜索打开',
                            showCancel: false,
                        })
                    })
                }
            });
        } else {
            //如果小程序需要在最新的微信版本体验，如下提示
            wx.showModal({
                title: '更新提示',
                content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
            })
        }
    },
    globalData: {
        userInfo: null,
        navInfo: null //自定义导航栏信息
    }
})

import Dialog from '@vant/weapp/dialog/dialog';

Dialog.setDefaultOptions({
    /**vant dialog组件配置 */
    width: '630rpx',
    confirmButtonColor: 'var(--themColor)',
    cancelButtonColor: '#BDBDBD',
    zIndex: 9999
})
Object.assign(wx, { $dialog: Dialog })

    /**
     * 基类全局Behavior
     * 不需要每个页面再单独引入
     */
    ! function() {
        let PageTmp = Page;
        Page = function(pageConfig) {
            let basePage = require('./common/BasePage');
            let behaviors = [basePage];
            if (pageConfig.behaviors) {
                behaviors = behaviors.concat(pageConfig.behaviors);
            }
            delete pageConfig.behaviors;

            pageConfig = Object.assign({
                behaviors
            }, pageConfig);

            // 配置页面模板
            PageTmp(pageConfig);
        }
    }();